import App from './App'

// #ifndef VUE3
import Vue from 'vue'
Vue.config.productionTip = false
App.mpType = 'app'
import {
  api
} from "@/utils/api.js";
import store from './store'
Vue.prototype.$store = store
Vue.prototype.$api = api
// 如此配置即可
uni.$u.setConfig({
  // 修改$u.config对象的属性
  config: {
    // 修改默认单位为rpx，相当于执行 uni.$u.config.unit = 'rpx'
    unit: 'rpx'
  },
  // 修改$u.props对象的属性
  props: {
    // 修改radio组件的size参数的默认值，相当于执行 uni.$u.props.radio.size = 30
    radio: {
      size: 30
    }
    // 其他组件属性配置
    // ......
  }
})
Vue.prototype.$onLaunched = new Promise(resolve => {
  Vue.prototype.$isResolve = resolve
})
// import cuCustom from './static/colorui/components/cu-custom.vue'
// Vue.component('cu-custom',cuCustom)

try {
  function isPromise(obj) {
    return (
        !!obj &&
        (typeof obj === "object" || typeof obj === "function") &&
        typeof obj.then === "function"
    );
  }

  // 统一 vue2 API Promise 化返回格式与 vue3 保持一致
  uni.addInterceptor({
    returnValue(res) {
      if (!isPromise(res)) {
        return res;
      }
      return new Promise((resolve, reject) => {
        res.then((res) => {
          if (res[0]) {
            reject(res[0]);
          } else {
            resolve(res[1]);
          }
        });
      });
    },
  });
} catch (error) { }

const app = new Vue({
  ...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
import {
  api
} from "@/utils/api.js";
import store from './store'
export function createApp() {
  const app = createSSRApp(App)
  app.config.globalProperties.$store = store;
  app.config.globalProperties.$api = api;
  app.use(store); // 如果你的 store 是 Vuex 或 Pinia 需要注册
  return {
    app
  }
}
// #endif